package com.aozhi.aipower.operation.entity;

import cn.org.atool.fluent.mybatis.annotation.FluentMybatis;
import cn.org.atool.fluent.mybatis.annotation.TableField;
import cn.org.atool.fluent.mybatis.annotation.TableId;
import cn.org.atool.fluent.mybatis.base.IEntity;
import cn.org.atool.fluent.mybatis.base.RichEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * ProductEntity: 数据映射实体定义
 *
 * @author Powered By Fluent Mybatis
 */
@Data
@Accessors(
    chain = true
)
@EqualsAndHashCode(
    callSuper = false
)
@FluentMybatis(
    table = "t_product"
)
public class ProductEntity extends RichEntity {
  private static final long serialVersionUID = 1L;

  /**
   * 表自增主键
   */
  @TableId("id")
  private Integer id;

  /**
   * 创建者
   */
  @TableField("created_by")
  private String createdBy;

  /**
   * 创建时间
   */
  @TableField("created_date")
  private LocalDateTime createdDate;

  /**
   * 修改者
   */
  @TableField("updated_by")
  private String updatedBy;

  /**
   * 修改时间
   */
  @TableField("updated_date")
  private LocalDateTime updatedDate;

  /**
   * 类型 1新品、2爆款
   */
  @TableField("type")
  private Integer type;

  /**
   * 跳转链接
   */
  @TableField("url")
  private String url;

  /**
   * 图片链接
   */
  @TableField("image_url")
  private String imageUrl;

  /**
   * 新品标题
   */
  @TableField("title")
  private String title;

  /**
   * 描述
   */
  @TableField("describes")
  private String describes;

  /**
   * 建议零售价
   */
  @TableField("retail_price")
  private BigDecimal retailPrice;

  /**
   * 实际销售价
   */
  @TableField("sell_price")
  private BigDecimal sellPrice;

  /**
   * 排序（升序）
   */
  @TableField("sort")
  private Integer sort;

  /**
   * 是否显示 1：true，0：false
   */
  @TableField("display")
  private Boolean display;

  @Override
  public Serializable findPk() {
    return this.id;
  }

  @Override
  public final Class<? extends IEntity> entityClass() {
    return ProductEntity.class;
  }
}
